<?php

/** server path */
define( "ARROW_CONF_PATH", ARROW_ABSOLUTE_PATH."/conf" );
define( "ARROW_LIBS_PATH", ARROW_ABSOLUTE_PATH."/libs" );
define( "ARROW_COMPONENTS_PATH", ARROW_ABSOLUTE_PATH."/components" );


/** project path */
define( "ARROW_PROJECT_PATH", "./" );
define( "ARROW_PROJECT_CACHE_PATH", ARROW_PROJECT_PATH."/cache" );
define( "ARROW_PROJECT_LOG_PATH", ARROW_PROJECT_PATH."/log" );
define( "ARROW_PROJECT_APPLICATION_PATH", ARROW_PROJECT_PATH."./application" );


/**
 * ArrowController - Arrow Framework Controller
 * @author 3code team
 * @date 03.06.2011
 * @version 1.0
 * @par TODO:
 * See @ref todo
 * @note Arrow Framework Controller.
 */ 
 
 /**
 * @page todo List of TODO
 *
 * -# 
 * -# 
 *
 * @n Wkrótce lista poszerzy się. @n
 */

class ArrowController {
	
	
	const HANDLER_SESSION = 1;
	const HANDLER_AUTH = 2;
	
	/*
	 * Zwraca projekt 
	 */
	public function getProject() {
		
	}
	
	/**
	 * Zwraca obiekt systemowy, 
	 * @param string $path - ścierzka do obiektu systemowego ["model:..., template:..., ..."]
	 * $new - jeśli true to za każdym razem zwróci inny obiekt dla tej samej ścierzki jeśli false(domyślne) to ten sam obiekt
	 */
	public function lookUp( $path, $new = false ) {
	}
	
	
	/*
	 * Przetwarza wywołania
	 * @param int $type - typ wywołania zwracany przez router
	 * @param string id - identyfikator obiektu wywoływanego
	 * @param bool $remote - czy wywołanie zdalne
	 */
	public function process( $type, $id, $remote ) {
		
		
	}
	
	
	/***
	 * Prawidłowe zakończenie skryptu
	 */
	public function end() {
		
	}
	
	
	/*
	 * Inicjalizacja serwera /
	 */
	public function init() {
		
	}	
	
	
	public function processTemplate( $id ) {
		
	}
	
	public function processBean( $id ) {
		
	}
	
	/**
	 * Zwraca handler określonego typu
	 * @param int [C_HANDLER_] $type 
	 */ 
	public function getHandler( $type ) {
		
	}
	
	
	
}




?>